From 8ca1b8fae9884aac82220f1e35b39e8990e343f0 Mon Sep 17 00:00:00 2001 From: "sos22@labyrinth.cl.cam.ac.uk" Date: Tue, 8 Jul 2003 13:33:33 +0000 Subject: [PATCH] bitkeeper revision 1.302 (3f0ac82dINhdLC_gSixgqsq54YoRug) Argg... the physdev code needs Xen block device numbers, not physical numbers. --- xen/drivers/block/xen_block.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/xen/drivers/block/xen_block.c b/xen/drivers/block/xen_block.c index 0ee664cda4..cef7c5e544 100644 --- a/xen/drivers/block/xen_block.c +++ b/xen/drivers/block/xen_block.c @@ -661,21 +661,22 @@ static void dispatch_rw_block_io(struct task_struct *p, int index) } else { - phys_seg[nr_psegs].dev = xendev_to_physdev(req->device); + phys_seg[nr_psegs].dev = req->device; phys_seg[nr_psegs].sector_number = req->sector_number + tot_sects; phys_seg[nr_psegs].buffer = buffer; phys_seg[nr_psegs].nr_sects = nr_sects; - if ( phys_seg[nr_psegs].dev == 0 ) - { - DPRINTK("bad device\n"); - goto bad_descriptor; - } if (p->domain != 0 && !xen_physdisk_access_okay(&phys_seg[nr_psegs], p, operation)) { DPRINTK("access denied\n"); /* XXX not quite right, but close enough. */ goto bad_descriptor; } + phys_seg[nr_psegs].dev = xendev_to_physdev(req->device); + if ( phys_seg[nr_psegs].dev == 0 ) + { + DPRINTK("bad device\n"); + goto bad_descriptor; + } new_segs = 1; } -- 2.30.2